const OpenAI = require('openai')
const dotenv = require('dotenv')
dotenv.config();  // 让node运行时去读取.env中的内容

const client = new OpenAI({
    apiKey: process.env.OPENAI_API_KEY,
    baseURL: process.env.OPENAI_BASE_URL
})

// 连接大模型
const getCompletion = async (prompt) => {
    // 用户说的话
    const messages = [{
        role: 'user',
        content: prompt
    }]
    // chat
    const response = await client.chat.completions.create({
        model: 'gpt-4o',
        messages: messages,
        temperature: 0.1,
        max_tokens: 100
    })
    return response.choices[0].message.content
}

const getFoodComponent = async (message) => {
    const prompt = `请给出这份食物${message}含有多少卡路里热量、多少克蛋白质、多少克脂肪和多少克碳水，我需要准确的四个数字，而不是一段范围,以json字符串的格式返回，不需要其余过多的解释，只需要四个数据。不需要“...json"和”...“的前后缀，只需要括号括起来的部分。`
    const result = await getCompletion(prompt)
    // console.log(result);
    return result
}

const getSportColorie = async (message) => {
    const prompt = `请告诉我一个正常成年人做这项运动${message.sportType}时长为${message.minute}分钟大概会消耗多少卡路里热量，我需要一个准确的数字，不需要一段范围,不需要其余过多的解释,只需要给出多少热量即可。不需要前面的解释前缀，只需要给出数字，也不需要前后两个*号`
    const result = await getCompletion(prompt)
    // console.log(result);
    return result
}

module.exports = {
    getFoodComponent,
    getSportColorie
}